#!/usr/bin/env python3
"""
AI助手工具
一个示例AI工具程序，展示如何在applications目录中创建全局可用的命令
"""

import argparse
import sys
import json
from pathlib import Path

def show_info():
    """显示AI工具集信息"""
    print("🤖 AI助手工具")
    print("=" * 50)
    print("这是一个示例AI工具程序，展示如何在applications目录中")
    print("创建全局可用的AI工具命令。")
    print()
    print("功能特性:")
    print("• 全局命令行访问")
    print("• 环境变量自动配置")
    print("• 跨平台支持")
    print("• 参数化命令执行")

def list_commands():
    """列出可用的AI命令模板"""
    commands_dir = Path.cwd().parent / "commands"

    if not commands_dir.exists():
        print("❌ 未找到commands目录")
        return

    print("📋 可用的AI命令模板:")
    print("=" * 50)

    commands = list(commands_dir.glob("*.md"))
    if not commands:
        print("   没有找到命令模板")
        return

    for cmd_file in sorted(commands):
        print(f"🔹 {cmd_file.stem}")

        # 尝试读取文件描述
        try:
            content = cmd_file.read_text(encoding='utf-8')
            if 'description:' in content:
                # 简单提取description
                lines = content.split('\n')
                for line in lines:
                    if line.strip().startswith('description:'):
                        desc = line.replace('description:', '').strip('"')
                        print(f"   {desc}")
                        break
        except:
            pass

def list_prompts():
    """列出可用的提示词"""
    prompts_dir = Path.cwd().parent / "prompts"

    if not prompts_dir.exists():
        print("❌ 未找到prompts目录")
        return

    print("💬 可用的提示词分类:")
    print("=" * 50)

    categories = ["basic", "professional", "creative", "workflow"]

    for category in categories:
        category_dir = prompts_dir / category
        if category_dir.exists():
            prompts = list(category_dir.glob("*.md"))
            if prompts:
                print(f"📁 {category.capitalize()} ({len(prompts)} 个)")
                for prompt_file in sorted(prompts):
                    print(f"   • {prompt_file.stem}")

def show_status():
    """显示AI工具集状态"""
    ai_dir = Path.cwd().parent

    print("📊 AI工具集状态:")
    print("=" * 50)
    print(f"AI目录: {ai_dir}")

    # 检查各个子目录
    subdirs = ["commands", "scripts", "prompts", "docs", "applications"]

    for subdir in subdirs:
        subdir_path = ai_dir / subdir
        if subdir_path.exists():
            file_count = len(list(subdir_path.rglob("*.md"))) + len(list(subdir_path.rglob("*.py")))
            print(f"✅ {subdir}/: {file_count} 个文件")
        else:
            print(f"❌ {subdir}/: 不存在")

    # 检查环境管理器
    env_manager = ai_dir / "applications" / "env-manager.py"
    if env_manager.exists():
        print("✅ 环境管理器: 已安装")
    else:
        print("❌ 环境管理器: 未找到")

def main():
    """主函数"""
    parser = argparse.ArgumentParser(
        description="AI助手工具 - 管理和使用AI工具集",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog="""
示例:
  %(prog)s info                   # 显示工具信息
  %(prog)s commands               # 列出可用命令
  %(prog)s prompts                # 列出提示词
  %(prog)s status                 # 显示状态
        """
    )

    subparsers = parser.add_subparsers(dest='command', help='可用命令')

    # info命令
    subparsers.add_parser('info', help='显示AI工具集信息')

    # commands命令
    subparsers.add_parser('commands', help='列出可用的AI命令模板')

    # prompts命令
    subparsers.add_parser('prompts', help='列出可用的提示词')

    # status命令
    subparsers.add_parser('status', help='显示AI工具集状态')

    args = parser.parse_args()

    if not args.command:
        parser.print_help()
        return

    try:
        if args.command == 'info':
            show_info()
        elif args.command == 'commands':
            list_commands()
        elif args.command == 'prompts':
            list_prompts()
        elif args.command == 'status':
            show_status()
    except Exception as e:
        print(f"❌ 执行失败: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main()